#pragma once
#ifndef ABSTRACT_PRODUCT_HEADER
#define ABSTRACT_PRODUCT_HEADER
#include <string>
/*Product's base, defining products' basic interfaces.*/
class AbstractProduct 
{
protected:
	 std::string type;
public:
	 AbstractProduct(const std::string &type)
	 : type(type)
	 {
		//NOTHING 
	 }
	 AbstractProduct(const char *type)
	 : type(type)
	 {
		//NOTHING 
	 }
    virtual ~AbstractProduct() { }
    virtual void operation() = 0;
};
#endif